package date;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * LocalDate(日期/年月日)、LocalTime(时间/时分秒)、LocaIDateTime(日期时间)
 *
 * LocalDate只包含日期,可以获取日期字段
 * LocaITime只包含时间，可以获取时间字段
 * LocalDateTime包含日期+时间，可以获取日期和时间字段
 */
public class TestLocalDateTime {
    public static void main(String[] args) {
        LocalDateTime ldt = LocalDateTime.now();//LocalDate.now();//LocalTime.now
        ldt.getYear();
        ldt.getMonthValue();
        ldt.getMonth();
        ldt.getDayOfMonth();
        ldt.getHour();
        ldt.getMinute();
        ldt.getSecond();
        System.out.println(ldt);


        /**
         * DateTimeFormatter 展现日期的格式
         * 与SimpleDateFormat相似
         */
        //自定义格式化
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小时mm分钟ss秒");
        String strDate = dateTimeFormatter.format(ldt);
        System.out.println(strDate);

        //用自定义格式解析
        LocalDateTime ldt2 = LocalDateTime.parse("2022/2/15 15:16:17",dateTimeFormatter);
        System.out.println(ldt2);

        // LocalDateTime提供 plus 和 minus方法可以对当前时间进行加或者减
        // 使用plus方法测试增加时间的某个部分
        //使用minus方法测试查看一年前和一年后的日期
        //看看890天后,是什么时候 年月日-时分秒
        LocalDateTime localDateTime = ldt.plusDays(890);
        System.out.println("890天后=" + dateTimeFormatter.format(localDateTime));
        //看看在3456分钟前是什么时候,年月日-时分秒输出
        LocalDateTime localDateTime2 = ldt.minusMinutes(3456);
        System.out.println("3456分钟前日期=" + dateTimeFormatter.format(localDateTime2));
    }

}
